home *** CD-ROM | disk | FTP | other *** search
/ Win Tutor 95 / Win Tutor 95.iso / setup16 / setup.mst < prev    next >
Text File  |  1995-08-03  |  12KB  |  417 lines

  1. '**************************************************************************
  2. '*                   Runtime Setup
  3. '**************************************************************************
  4. '$INCLUDE 'setupapi.inc'
  5. '$INCLUDE 'mscpydis.inc'    ''System
  6. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST DESTPATH      = 300
  12. CONST EXITFAILURE   = 400
  13. CONST EXITQUIT      = 600
  14. CONST EXITSUCCESS   = 700
  15. CONST OPTIONS       = 800
  16. CONST APPHELP       = 900
  17. CONST VIDUNFIT      = 1000
  18. CONST VIDINSTD      = 1001
  19. CONST AUDUNFIT      = 1002
  20. CONST CHECK         = 2500
  21. CONST SMALLWIN      = 2200
  22. CONST RESTART       = 2600
  23. CONST RESTARTII     = 2700
  24. CONST SMALLDEST     = 6300
  25. CONST BADPATH       = 6400
  26.  
  27. GLOBAL MDEST$
  28. GLOBAL TITLE$
  29. GLOBAL ICONDESC$
  30. GLOBAL ICONRMDESC$
  31.  
  32. ''Bitmap ID
  33. CONST LOGO = 1
  34. GLOBAL SizeReq&  '' Total Disk Size required for installation
  35.  
  36. ''File Types
  37. GLOBAL WinDir$
  38. GLOBAL WinSysDir$
  39. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  40. GLOBAL SrcDir$
  41. GLOBAL CHECKSTATES$
  42. GLOBAL OPTCUR$
  43. GLOBAL AUDIO%
  44. GLOBAL INSTVID%
  45. GLOBAL NTDETECT%
  46.  
  47. DECLARE SUB Install
  48. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  49. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  50. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  51. DECLARE SUB Reboot LIB "iniupd.dll"
  52. DECLARE FUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  53. DECLARE FUNCTION ParaExec LIB "PARASET.DLL" (A$, B$) AS INTEGER
  54. DECLARE FUNCTION GetParaVideo LIB "PARASET.DLL" AS INTEGER
  55. DECLARE FUNCTION GetParaAudio LIB "PARASET.DLL" AS INTEGER
  56. DECLARE FUNCTION ParaAppendFile LIB "PARASET.DLL" (A$, B$) AS INTEGER
  57.  
  58. '' Startup
  59. INIT:
  60.   
  61. ''Paul: Change these constants for different installations
  62.     MDEST$ = "C:\WINTU95U"
  63.     TITLE$ = "WinTutor95U Setup"
  64.     ICONDESC$ = "WinTutor95U"
  65.     ICONRMDESC$ = "WinTutor95U Readme"
  66.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  67.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  68.     
  69.     WIN32ENABLED% = 0
  70.     INSTVID% = 0
  71.     OPTCUR$ = "1"
  72.     AUDIO% = 0
  73.    
  74.     MajorVer% = GetWindowsMajorVersion()
  75.     MinorVer% = GetWindowsMinorVersion()
  76.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  77.     WinDir$ = GetWindowsDir()
  78.     WinSysDir$ = GetWindowsSysDir()
  79.  
  80.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  81.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  82.     END
  83.     END IF
  84.  
  85.  
  86.     SetBitmap CUIDLL$, LOGO
  87.     SetTitle TITLE$
  88.  
  89.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  90.     IF szInf$ = "" THEN
  91.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  92.     END IF
  93.     ReadInfFile szInf$
  94.  
  95. '' Do welcome dialog
  96. WELCOME:
  97.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  98.     IF sz$ = "CONTINUE" THEN
  99.        UIPop 1
  100.      ELSE
  101.     GOSUB ASKQUIT
  102.     GOTO WELCOME
  103.     END IF
  104.  
  105.  
  106. '' Get destination path dialog
  107. GETPATH:
  108.     SetSymbolValue "EditTextIn", MDEST$
  109.     SetSymbolValue "EditFocus", "END"
  110. GETPATHL1:
  111.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  112.     MDEST$ = GetSymbolValue("EditTextOut")
  113.  
  114.     IF sz$ = "CONTINUE" THEN
  115.         IF IsDirWritable(MDEST$) = 0 THEN
  116.             GOSUB BADPATH
  117.             GOTO GETPATHL1
  118.         END IF
  119.         UIPop 1
  120.     ELSEIF sz$ = "REACTIVATE" THEN
  121.         GOTO GETPATHL1
  122.     ELSEIF sz$ = "BACK" THEN
  123.         UIPop 1
  124.         GOTO WELCOME
  125.     ELSE
  126.         GOSUB ASKQUIT
  127.         GOTO GETPATH
  128.     END IF
  129.  
  130.  
  131. '' Check for space on selected drive
  132.     ClearCopyList
  133.     AddSectionFilesToCopyList "Paragon", SrcDir$, MDEST$
  134.     SizeReq& = GetCopyListCost ("","", "")
  135.     IF SizeReq& <> 0 THEN
  136.     GOSUB SMALLDEST
  137.     GOTO GETPATH
  138.     END IF
  139.  
  140.  
  141. '' Prompt for audio quality
  142. 'OPTION:
  143. '    SetSymbolValue "RadioDefault", OPTCUR$
  144. 'OPTL1:
  145. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  146. '    OPTCUR$ = GetSymbolValue("ButtonChecked")
  147.  
  148. '    IF sz$ = "CONTINUE" THEN
  149. '        UIPop(1)
  150. '    ELSEIF sz$ = "REACTIVATE" THEN
  151. '        GOTO OPTL1
  152. '    ELSEIF sz$ = "BACK" THEN
  153. '        UIPop 1
  154. '        GOTO GETPATH
  155. '    ELSE
  156. '        GOSUB ASKQUIT
  157. '        GOTO OPTION
  158. '    END IF
  159.  
  160. '    IF OPTCUR$ = "2" THEN
  161. '        AUDIO% = 1
  162. '    END IF
  163.  
  164. '' Check for graphics capability and audio drivers loaded
  165.     i% = GetParaVideo()
  166.     IF i% = 1 THEN
  167. VIDT1:
  168.         sz$ = UIStartDlg(CUIDLL$, VIDUNFIT, "FInfo0DlgProc", 0, "")
  169.         IF sz$ = "REACTIVATE" THEN
  170.         GOTO VIDT1
  171.         END IF
  172.         UIPop 1
  173.     ENDIF
  174.  
  175.     i% = GetParaAudio()
  176.     IF i% = 1 THEN
  177. AUDT1:
  178.         sz$ = UIStartDlg(CUIDLL$, AUDUNFIT, "FInfo0DlgProc", 0, "")
  179.         IF sz$ = "REACTIVATE" THEN
  180.         GOTO AUDT1
  181.         END IF
  182.         UIPop 1
  183.     ENDIF
  184.  
  185. '' Prompt for Video for Windows install
  186. VIDINST:
  187.     sz$ = UIStartDlg(CUIDLL$, VIDINSTD, "FInfoDlgProc", APPHELP, HELPPROC$)
  188.     IF sz$ = "CONTINUE" THEN
  189.     INSTVID% = 1
  190.     END IF
  191.     UIPop 1
  192.  
  193.  
  194. '' Check for video size of vidinst
  195.  
  196.    IF INSTVID% = 1 THEN
  197.         ClearCopyList
  198.         AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  199.         AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  200.         AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  201.         AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  202.         AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  203.         AddSectionFilesToCopyList "Indeo-ini", SrcDir$, WinDir$
  204.  
  205.         SizeReq& = GetCopyListCost ("","", "")
  206.         IF SizeReq& <> 0 THEN
  207.         GOSUB SMALLWIN
  208.         END
  209.         END IF
  210.  
  211.         IF OnWindowsNT() THEN
  212.           i% = DoMsgBox("This version of Video for Windows does not run on Windows NT.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  213.           END
  214.         END IF
  215.         AddSectionFilesToCopyList "Paragon", SrcDir$, MDEST$
  216.     END IF
  217.         
  218. Install
  219.  
  220. '' Restart windows if video installed
  221.   IF INSTVID% = 1 THEN
  222.         RESTRT% = RestartListEmpty ()
  223.         Exe$ = DEST$ + "\_msrstrt.exe"
  224.         Batch$ = DEST$ + "\_mssetup.bat"
  225.         empty$ = ""
  226. RESTART:
  227.     IF RESTRT% = 0 THEN
  228.        sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  229.        IF sz$ = "REACTIVATE" THEN
  230.       GOTO RESTART
  231.        ENDIF
  232.        I% = ExitExecRestart ()
  233.        RemoveFile Exe$, cmoForce
  234.        RemoveFile Batch$, cmoForce
  235.        END
  236.     ELSE
  237.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  238.        IF sz$ = "CONTINUE" THEN
  239.       I% = ExitWindowsExec (Exe$, empty$)
  240.       IF I% = 0 THEN
  241.          GOTO RESTART
  242.       ELSE
  243.          END
  244.      ENDIF
  245.        ELSEIF sz$ = "EXIT" THEN
  246.       UIPopAll
  247.       END
  248.        ELSEIF sz$ = "REACTIVATE" THEN
  249.       GOTO RESTART
  250.        ELSE
  251.       UIPop 1
  252.        END IF
  253.     END IF
  254.   END IF
  255.  
  256. QUIT:
  257.     ON ERROR GOTO ERRQUIT
  258.  
  259.     IF ERR = 0 THEN
  260.     dlg% = EXITSUCCESS
  261.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfoDlgProc", 0, "")
  262.         IF sz$ = "CONTINUE" THEN
  263.             UIPop 1
  264.         i% = ParaExec(MDEST$,"ammanati -F front.qc")
  265.         END
  266.         ELSEIF sz$ = "REACTIVATE" THEN
  267.             GOTO QUIT
  268.         ELSEIF sz$ = "BACK" THEN
  269.             UIPop 1
  270. '        i% = ParaExec(".\", "notepad.exe "+MakePath(MDEST$,"readme.doc"))
  271.         i% = ParaExec("", "notepad "+MakePath(MDEST$,"readme.doc"))
  272.         END
  273.         ELSE
  274.                 END
  275.         END IF
  276.     END IF
  277.  
  278.     IF ERR = STFQUIT THEN
  279.     dlg% = EXITQUIT
  280.     ELSE
  281.     dlg% = EXITFAILURE
  282.     END IF
  283. QUITL1:
  284.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  285.     IF sz$ = "REACTIVATE" THEN
  286.     GOTO QUITL1
  287.     END IF
  288.     UIPop 1
  289.     END
  290.  
  291. ERRQUIT:
  292.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  293.     END
  294.  
  295.  
  296. '' Subroutine ask quit
  297. ASKQUIT:
  298.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  299.  
  300.     IF sz$ = "EXIT" THEN
  301.     UIPopAll
  302. ''        ERROR STFQUIT
  303.     END
  304.     ELSEIF sz$ = "REACTIVATE" THEN
  305.     GOTO ASKQUIT
  306.     ELSE
  307.     UIPop 1
  308.     END IF
  309.     RETURN
  310.  
  311.  
  312. '' Subroutine bad path
  313. BADPATH:
  314.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  315.     IF sz$ = "REACTIVATE" THEN
  316.         GOTO BADPATH
  317.     END IF
  318.     UIPop 1
  319.     RETURN
  320.  
  321. SMALLWIN:
  322.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  323.     IF sz$ = "REACTIVATE" THEN
  324.     GOTO SMALLWIN
  325.     END IF
  326.     UIPop 1
  327.     RETURN
  328.  
  329.  
  330. SMALLDEST:
  331.     sz$ = UIStartDlg(CUIDLL$, SMALLDEST, "FInfo0DlgProc", 0, "")
  332.    IF sz$ = "REACTIVATE" THEN
  333.     GOTO SMALLDEST
  334.    END IF
  335.     UIPop 1
  336.     RETURN
  337.  
  338.  
  339. '**
  340. '** Purpose:
  341. '**     Performs all installation operations.
  342. '** Arguments:
  343. '**     none.
  344. '** Returns:
  345. '**     none.
  346. '*************************************************************************
  347. SUB Install STATIC
  348.  
  349.      IF EXISTS (MDEST$+"\*.*") THEN
  350.         kill MDEST$+"\*.*"
  351.      ENDIF
  352.     SetRestartDir WinDir$
  353.     CopyFilesInCopyList
  354.  
  355. ''Updating WIN.INI and SYSTEM.INI
  356.   IF INSTVID% = 1 THEN
  357.     IF VflatdPresent() = 0 THEN
  358.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  359.     END IF
  360.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  361.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  362.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite
  363.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  364.     I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  365.     IF I% = 0  THEN
  366.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite
  367.     END IF
  368.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite
  369.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  370.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  371.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  372.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  373.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  374.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  375.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  376.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  377.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  378.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  379.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  380.  
  381. '' Mplayer
  382.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  383.     Run ("profdisp.exe")
  384.   END IF
  385.  
  386.     CreateProgmanGroup "Softkey", "", cmoNone
  387.     ShowProgmanGroup  "Softkey", 1, cmoNone
  388.     CreateProgmanItem "Softkey", ICONDESC$, MakePath(MDEST$,"ammanati")+" -F front.qc", "",cmoOverwrite
  389.     CreateProgmanItem "Softkey", ICONRMDESC$, "notepad.exe "+MakePath(MDEST$,"readme.doc"), "", cmoOverwrite
  390.     i% = ParaAppendFile(MDEST$+"\\default.qd", "_wrkdir "+CHR$(34)+MDEST$+CHR$(34))
  391.     i% = ParaAppendFile(MDEST$+"\\default.qd", "_cddir "+CHR$(34)+SrcDir$+"..\WT95"+CHR$(34))
  392.  
  393. END SUB
  394.  
  395. '**
  396. '** Purpose:
  397. '**     Appends a file name to the end of a directory path,
  398. '**     inserting a backslash character as needed.
  399. '** Arguments:
  400. '**     szDir$  - full directory path (with optional ending "\")
  401. '**     szFile$ - filename to append to directory
  402. '** Returns:
  403. '**     Resulting fully qualified path name.
  404. '*************************************************************************
  405. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  406.     IF szDir$ = "" THEN
  407.     MakePath = szFile$
  408.     ELSEIF szFile$ = "" THEN
  409.     MakePath = szDir$
  410.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  411.     MakePath = szDir$ + szFile$
  412.     ELSE
  413.     MakePath = szDir$ + "\" + szFile$
  414.     END IF
  415. END FUNCTION
  416.  
  417.